package com.happyghost.java8.streamdemo;

import org.junit.Test;

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Stream;

public class StreamDemo1 {

    @Test
    public void test001() {
        Stream.of("d2", "a2", "b1", "b3", "c")
                .filter(s -> {
                    System.out.println("filter: " + s);
                    return true;
                });
        //.forEach(System.out::println);


        Stream.of("a1", "a2", "a3")
                .map(s -> s.substring(1)) // 对每个字符串元素从下标1位置开始截取
                .mapToInt(Integer::parseInt) // 转成 int 基础类型类型流
                .max() // 取最大值
                .ifPresent(System.out::println);  // 不为空则输出

        //
    }


    /**
     *
     */
    @Test
    public void test002() {
        Stream.of("d2", "a2", "b1", "b3", "c")
                .map(s -> {
                    System.out.println("map: " + s);
                    return s.toUpperCase(); // 转大写
                })
                .filter(s -> {
                    System.out.println("filter: " + s);
                    return s.startsWith("A"); // 过滤出以 A 为前缀的元素
                })
                .forEach(s -> System.out.println("forEach: " + s)); // for 循环输出
    }

    @Test
    public void test003() {
        // 创建List数组
        List<String> list = new ArrayList<>();
//Create a new list
        list.add("d2");

        //冒泡算法
        // 处理字符串转换大写代码
    }

    @Test
    public void test004() {
        //  过滤出以 a 为前缀的元素,转换成大写，for 循环输出
        Stream.of("d2", "a2", "b1", "b3", "c").filter(s -> {
            System.out.println("filter: " + s);
            return s.startsWith("s"); // // 过滤出以 a 为前缀的元素
        }).map(s -> {
                    System.out.println("map: " + s);
                    return s.toUpperCase();
                }
        ).forEach(s -> System.out.println("filter: " + s));
    }

}
